
package exam.ThreadTest;

import android.app.*;
import android.os.*;
import android.widget.*;


public class Thread1 extends Activity {
	private ProgressBar mProgress;
	private int mProgressStatus = 0;
	private Handler mHandler = new Handler();

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.thread1);
		mProgress = (ProgressBar) findViewById(R.id.progressbar3);

		new Thread(new Runnable() {
			public void run() {
				while (mProgressStatus < 100) {
					mProgressStatus += 10;
					mProgress.setProgress(mProgressStatus);
					// PorgressBar인스턴스 update 메시지를 메시지 큐에 등록
					/*
					 * mHandler.post(new Runnable() { public void run() { //
					 * work 스레드 내부에서 명령이 실행되는 것이 아니라 // post(..)에 의해 메시지 큐에 추가됨.
					 * 
					 * 
					 * } });
					 */
				}
			}
		}).start();

	}
}



/*public class Thread1 extends Activity {

    private ProgressBar mProgress;
    private int mProgressStatus = 0;

    // Handler 객체를 생성하고
    // handleMessage(Message)를 오버라이딩하여
    // mHandler 인스턴스에게 전달 되는 모든 메시지를 처리함.
    private Handler mHandler = new Handler(){
    	@Override
    	// 어떤 메시지가 전달되어도 progress bar를 설정함.
		public void handleMessage(Message msg) {
			mProgress.setProgress(mProgressStatus);
		}
    };

    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

		setContentView(R.layout.thread1);

		mProgress = (ProgressBar) findViewById(R.id.progressbar3);

        // 오래 걸리는 작업을 work 스레드에서 실행 함
        new Thread(new Runnable() {
            public void run() {
				while (mProgressStatus < 100) {
                	mProgressStatus += 10;

                    // 메시지를 발생시킴. 메시지 큐에 저장되며
                	// UI 스레드는 메시지를 mHandler 객체로 전달함.
                	// 결과적으로 UI 스레드에서  
                	// mHnadler의 handleMessage(Message)에 의해 처리됨. 
					mHandler.sendMessage(mHandler.obtainMessage());
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
                }
            }
        }).start();
    }
}*/
